/**
 * 树形结构（二叉树）
 * val: 值
 * left: 左子节点
 * right: 右子节点
 * */
function TreeNode(val, left, right) {
    this.val = (val===undefined ? 0 : val)
    this.left = (left===undefined ? null : left)
    this.right = (right===undefined ? null : right)
}



/** 利用系统栈实现前中后遍历 */

/** 后序遍历 */
// function postorder(root, ret) {
//     if (!root) return;
/** 下面三行是前中后序遍历的区别 */
//     postorder(root.left, ret);
//     postorder(root.right, ret);
//     ret.push(root.val)
//     return;
// }
// var postorderTraversal = function(root) {
//     const ret = [];
//     postorder(root, ret); // 求root节点的左右根
//     return ret;
// };

/** 前序遍历 */
// function postorder(root, ret) {
//     if (!root) return;
/** 下面三行是前中后序遍历的区别 */
//     ret.push(root.val)
//     postorder(root.left, ret);
//     postorder(root.right, ret);
//     return;
// }
// var postorderTraversal = function(root) {
//     const ret = [];
//     postorder(root, ret); // 求root节点的左右根
//     return ret;
// };

/** 中序遍历 */
// function postorder(root, ret) {
//     if (!root) return;
/** 下面三行是前中后序遍历的区别 */
//     postorder(root.left, ret);
//     ret.push(root.val)
//     postorder(root.right, ret);
//     return;
// }
// var postorderTraversal = function(root) {
//     const ret = [];
//     postorder(root, ret); // 求root节点的左右根
//     return ret;
// };

export default TreeNode;